package com.battery.service.impl;

import com.battery.dao.RuleDao;
import com.battery.pojo.Rule;
import com.battery.service.RuleService;
import com.battery.util.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;

@Service
public class RuleServiceImpl implements RuleService {
    @Autowired
    private RuleDao ruleDao;
    @Override
    public Result updateRule(Rule rule){
        try {
            if(ruleDao.findByRule_Id(rule.getRule_id())!=null)
                ruleDao.updateRule(rule);
            else return Result.error().message("没有找到该计费规则");
        } catch (DuplicateKeyException e){
            return Result.error().message("重复主键"+e.toString());

        } catch (Exception e){
            return Result.error().message("未知错误："+e.toString());
        }
        return Result.ok().message("修改成功");
    }
    @Override
    public Result addRule(Rule rule){
        try {
            if(ruleDao.findByRule_Id(rule.getRule_id())!=null)
                return Result.error().message("该计费规则已经存在");
            else
            ruleDao.addByRule_Id(rule);
        } catch (DuplicateKeyException e){
            return Result.error().message("重复主键"+e.toString());

        } catch (Exception e){
            return Result.error().message("未知错误："+e.toString());
        }
        return Result.ok().message("添加成功");
    }
    @Override
    public Result deleteRule(int rule_id){
        try {
            if(ruleDao.findByRule_Id(rule_id)!=null)
                ruleDao.deleteByRule_Id(rule_id);
            else return Result.error().message("没有找到该计费规则");
        } catch (DuplicateKeyException e){
            return Result.error().message("重复主键"+e.toString());

        } catch (Exception e){
            return Result.error().message("未知错误："+e.toString());
        }
        return Result.ok().message("删除成功");
    }
    @Override
    public Result findRule(int rule_id){
        try {
            if(ruleDao.findByRule_Id(rule_id)!=null)
                ruleDao.findByRule_Id(rule_id);
            else
                return Result.error().message("没有找到该计费规则");
 //       } catch (DuplicateKeyException e){
 //           return Result.error().message("重复主键"+e.toString());

        } catch (Exception e){
            return Result.error().message("未知错误："+e.toString());
        }
        return Result.ok().message("查询成功");
    }
    }




